namespace TomatoBreak.DataAccess.Mapping
{
    using NHibernate.Mapping.ByCode;

    using DomainObjects;

    public class ToDoItemMap : IClassMap
    {
        public void Map(ModelMapper mapper)
        {
            mapper.Class<ToDoItem>(m =>
            {
                m.Id(i => i.Id);
                m.Property(i => i.OrderNo);

                m.ManyToOne(i => i.Task, c =>
                {
                    c.Column("TaskId");
                    c.NotNullable(true);
                    c.ForeignKey("FK_ToDoItem_Task");
                    c.Index("IX_ToDoItem_TaskId");
                });

                m.ManyToOne(i => i.ToDoList, c =>
                {
                    c.Column("ToDoListId");
                    c.NotNullable(true);
                    c.ForeignKey("FK_ToDoItem_ToDoList");
                    c.Index("IX_ToDoItem_ToDoListId");
                });
            });
        }
    }
}